home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / ctutord.EXE / FILEORG < prev    next >
Text File  |  1993-04-30  |  2KB  |  90 lines

  1. File organization example:
  2.  
  3. /* section 1 */
  4. #include <stdio.h>
  5.  
  6. /* section 2 */
  7. /*
  8.  * This is an example of organizing a source file for use in a
  9.  * make believe project called operation codify. 
  10.  *
  11.  * Operation codify is used to organize a source file in a predictable
  12.  * format which can be used by all programmers working on the same
  13.  * project.
  14.  * 
  15.  */
  16.  
  17. /* section 3 */
  18. #define     ON    1    
  19. #define        OFF    0
  20. /*
  21.  * node definition of the binary tree.
  22.  *
  23.  */
  24. struct tree {
  25.     struct tree *right;/* pointer to right subtree */
  26.     struct tree *left; /* pointer to left subtree  */
  27.     int data;          /* numerical data to be stored in tree */
  28. };
  29.  
  30. /* Function prototype - "buildtree": used to build the binary tree */
  31. int buildtree( struct tree * );
  32.  
  33. /* section 4 */
  34. /* section 5 */
  35. main()
  36. {
  37.     int    err;      /* error flag, 0=ok, -1=error       */
  38.     struct tree root; /* define the root node of the tree */
  39.  
  40.     err=buildtree(&root);
  41.     /* check error condition, exit if problem */
  42.     if( err == -1 ){
  43.         printf("Buildtree could not allocate memory!\n");
  44.         /* return to op system */
  45.         exit();
  46.     }
  47.  
  48.     /* ... */
  49. }
  50.  
  51. /*
  52.  *    buildtree 
  53.  *        
  54.  *    Purpose: buildtree is responsible for building a binary tree
  55.  *         which will be used to numerically sort a list of
  56.  *         numbers. The list of numbers is stored in the tree
  57.  *         one number at a time using the following algorithm:
  58.  *         
  59.  *         if( number < node value )
  60.  *            go left
  61.  *         else
  62.  *            go right
  63.  *
  64.  *        buildtree is called recursively when a value is found
  65.  *        at the current node. When a value is not found, a new
  66.  *        node is malloc'ed and initialized. buildtree is then
  67.  *        called again with the address of the new node.
  68.  *
  69.  *    Inputs:
  70.  *        struct node *    (pointer to a node structure)
  71.  *
  72.  *    Outputs:
  73.  *        int    (error condition flag), possible values:
  74.  *            
  75.  *            0  - all is well
  76.  *            -1 - could not allocate memory correctly
  77.  *            
  78.  *
  79.  *    Linage:
  80.  *        John Doe    01/01/77    1.0 Original version
  81.  *
  82.  *        (all mods will be identified here, along with their
  83.  *        creator and the date.)
  84.  *
  85.  */
  86. int buildtree( struct tree *node )
  87. {
  88.     /* ... */
  89. }
  90.